package com.zhuiyun.project.api.system.businesPost.mapper;

import com.zhuiyun.project.api.system.businesPost.entity.SysPost;
import com.zhuiyun.project.api.system.businesPost.entity.SysUserPost;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @ClassName SysBusinesPostServiceImpl
 * @Description TODO 租户岗位管理数据层
 * @Author wx
 * @Date 2023/12/6 15:41
 **/
@Mapper
public interface SysBusinesPostMapper {

    /**
     * @Author wx
     * @Description 获取岗位列表
     * @Date 2023/12/6 15:47
     * @Return
     * @param post
     */
    List<SysPost> selectPostList(SysPost post);

    /**
     * @Author wx
     * @Description 查询岗位名称是否存在
     * @Date 2023/12/6 16:02
     * @Return
     * @param postName
     */
    SysPost checkPostNameUnique(String postName, String venueUniqueIdentifier);

    /**
     * @Author wx
     * @Description 查询岗位编号是否存在
     * @Date 2023/12/6 16:05
     * @Return
     * @param postCode
     */
    SysPost checkPostCodeUnique(String postCode, String venueUniqueIdentifier);

    /**
     * @Author wx
     * @Description 新增岗位信息
     * @Date 2023/12/6 16:08
     * @Return
     * @param post
     */
    int insertPost(SysPost post);

    /**
     * @Author wx
     * @Description 根据岗位编号获取详细信息
     * @Date 2023/12/6 16:15
     * @Return
     * @param postId
     */
    SysPost selectPostById(Long postId, String venueUniqueIdentifier);

    /**
     * @Author wx
     * @Description 修改岗位信息
     * @Date 2023/12/6 16:23
     * @Return
     * @param post
     */
    int updatePost(SysPost post);

    /**
     * @Author wx
     * @Description 根据id查询岗位使用情况
     * @Date 2023/12/6 16:40
     * @Return
     * @param postId
     */
    int countUserPostById(Long postId, String venueUniqueIdentifier);

    /**
    * @Author wx
    * @Description 删除岗位信息
    * @Date 2023/12/6 16:42
    * @Return
    * @param postIds
    */
    int deletePostByIds(Long[] postIds, String venueUniqueIdentifier);

    /**
     * @Author wx
     * @Description 查询所有岗位
     * @Date 2023/12/8 8:31
     * @Return
     * @param venueUniqueIdentifier
     */
    List<SysPost> selectPostAll(String venueUniqueIdentifier);

    /**
     * @Author wx
     * @Description 根据id获取岗位选择列表
     * @Date 2023/12/8 8:47
     * @Return
     * @param userId
     */
    List<Long> selectPostListByUserId(long userId, String venueUniqueIdentifier);

    /**
    * @Author wx
    * @Description 批量新增用户岗位和信息
    * @Date 2023/12/8 9:05
    * @Return
    * @param list
    */
    int batchUserPost(List<SysUserPost> list);

    /**
    * @Author wx
    * @Description 删除用户与岗位关联
    * @Date 2023/12/8 9:20
    * @Return
    * @param userId
    */
    int deleteUserPostByUserId(Integer userId);
}
